package cn.iocoder.yudao.module.mon.ext_service.ys7_service;

import cn.iocoder.yudao.module.mon.vo.reponse.Ys7AccessTokenResVo;
import cn.iocoder.yudao.module.mon.vo.reponse.Ys7GetDeviceInfoResVo;
import cn.iocoder.yudao.module.mon.vo.reponse.Ys7GetDeviceListResVo;
import cn.iocoder.yudao.module.mon.vo.request.Ys7AddDeviceReqVo;
import cn.iocoder.yudao.module.mon.vo.request.Ys7DeleteDeviceReqVo;
import cn.iocoder.yudao.module.mon.vo.request.Ys7GetDeviceInfoReqVo;
import cn.iocoder.yudao.module.mon.vo.request.Ys7UpdateNameDeviceReqVo;

import java.util.List;

public interface Ys7ExtService {

    /**
     * 获取萤石云accessToken
     * token 7天有效 到期自动获取
     */
    Ys7AccessTokenResVo getAccessToken();

    /**
     * 缓存获取萤石云accessToken
     * token 7天有效 到期自动获取
     */
    String getAccessTokenCache();

    /**
     * 设备基础信息查询
     * @param req 参数
     * @return result
     */
    Ys7GetDeviceInfoResVo getDeviceInfo(Ys7GetDeviceInfoReqVo req);
    /**
     * 添加设备
     * @param req 参数
     * @return result
     */
    void addDeviceInfo(Ys7AddDeviceReqVo req);
    /**
     * 删除设备
     * @param req 参数
     * @return result
     */
    void deleteDeviceInfo(Ys7DeleteDeviceReqVo req);

    /**
     * 获取设备列表
     * @param req 参数
     * @return result
     */
    List<Ys7GetDeviceListResVo> getDeviceList(Ys7DeleteDeviceReqVo req);

    /**
     * 修改设备名称
     * @param req 参数
     * @return result
     */
    void updateDeviceName(Ys7UpdateNameDeviceReqVo req);


}
